package br.com.ia.business;

import java.util.List;

import br.com.enovar.trex.core.business.IGenericBusiness;
import br.com.ia.model.BlocoRegra;
import br.com.ia.model.Conectivo;
import br.com.ia.model.ItemRegra;
import br.com.ia.model.Regra;

public interface RegraBusiness extends IGenericBusiness {

	public static final String CD_CONECTIVO_E = "E";
	public static final String DS_CONECTIVO_E = "E";
	
	public static final String CD_CONECTIVO_OU = "OU";
	public static final String DS_CONECTIVO_OU = "OU";
	
	public List<Regra> buscarRegra(String descricao);
	
	public List<Regra> buscarRegraQueRetornaObjetivo();
	
	public List<Conectivo> buscarTodosConectivos();
	
	public void insertRegra(Regra regra, ItemRegra itemRegra, ItemRegra conclusao);
	
	public void insertItemRegra(ItemRegra itemRegra);
	
	public Integer buscarMaiorSequencePorRegra(Integer codigoRegra);
	
	public List<Regra> buscarRegraOrdenada();
	
	public List<Regra> buscarRegraOrdenadaExcetoRegrasInferidasComSucesso(List<Integer> codigosRegras);
	
	public List<BlocoRegra> separarBloco(List<ItemRegra> itens);
}
